1. Field of the Invention
The present invention relates to transmission and storage systems with certain constraints such as a maximum number of consecutive zeros within a given block that is transmitted or stored.
2. Description of Background Information
Digital magnetic recording systems use run length limited coding to constrain the number of consecutive recorded zeros within given segments of data. A (d,k) code is used; xe2x80x9cdxe2x80x9d represents the minimum number of consecutive zeros between the 1""s, and xe2x80x9ckxe2x80x9d represents the maximum number of consecutive zeros between the 1""s. Conventional recording systems typically use (0,k) constraints, i.e., constraints in which there is no minimum number of zeros between the 1""s. The xe2x80x9ckxe2x80x9d constraint is used for synchronization purposes, e.g., to ensure that the timing of a phase locked loop remains accurate.
FIG. 1 is a block diagram of a digital magnetic recording system 10. Data is stored on a recording medium 18 for later playback. The illustrated digital magnetic recording system 10 comprises an ECC (error correction code) encoder 12. ECC encoder 12 has an output coupled to an input of a (d,k) encoder 14. The output of (d,k) encoder 14 is connected to an input of a precoder 16, the output of which is coupled to a mechanism for recording data onto a recording medium 18. Data played back from recording medium 18 is forwarded to an input of a Viterbi decoder 20, the output of which is connected to an input of a (d,k) decoder 22. The output of (d,k) decoder 22 is connected to an input of an ECC decoder 24. In operation, input data 11 is received at an input of ECC encoder 12, which ECC encodes the input data and forwards the ECC encoded input data to (d,k) encoder 14. The (d,k) encoder 14 further encodes the data to control the (d,k) constraints of the data. The (d,k) constrained data is then input to precoder 16, which precodes the data before it is stored on recording medium 18. When the data is played back from recording medium 18, it is input to viterbi decoder 20, which decodes the data and forwards the decoded data to (d,k) decoder 22, which reverses the encoding performed by (d,k) encoder 14. The (d,k) decoded data is then input to ECC decoder 24, which performs an appropriate ECC decoding operation on the data, and outputs the data at its output 25.
Some digital magnetic recording systems may utilize turbo coding. Such systems split the decoding operation into two steps, and iterate between them. FIG. 2 is a block diagram of a turbo coding digital magnetic recording system 28.
An ECC encoder 29 is provided which has one input and two outputs. Input data 27 is received at its input, the first of its outputs is connected to a multiplex puncture mechanism 30, and a second output is connected to a convolutional encoder 31. Convolutional encoder 31 comprises an output which is coupled to multiplex puncture mechanism 30. Multiplex puncture mechanism 30 comprises an output which is connected to a precoder 32, the output of which is connected to a random permuting operator 34. The output of random permuting operator 34 is connected to a mechanism for placing the data it outputs onto a recording medium 36. When data is played back from recording medium 36, it is forwarded to an input of an APP channel 40, which forms one element of an iterative decoder 38. Decoder 38 comprises an output which is connected to an input of an ECC decoder 56, which outputs output data 57 at its output. As shown in FIG. 2, iterative decoder 38 comprises a plurality of elements, including a reverse random permuting operator 44, a de-multiplex, de-puncture mechanism 46, an APP convolutional code mechanism 48, a multiplex puncture mechanism 50, and a random permuting operator 54. The illustrated iterative decoder 38 further comprises first and second adders 42 and 52. APP channel 40 comprises two inputs, one of which receives data played back from recording medium 36. It also has an output which is connected directly to first adder 42. The output of first adder 42 is connected to an input of reverse random permuting operator 44, the output of which connects to an input of de-multiplex de-puncture mechanism 46. Mechanism 46 comprises one output which is connected to both APP convolutional code mechanism 48 and an input of second adder 52. APP convolutional code mechanism 48 comprises a first output which is connected to an input of multiplex puncture mechanism 50, the output of which is connected to a second input of second adder 52. The output of second adder 52 is connected to the input of random permuting operator 54. The output of random permuting operator 54 is connected to a second input of first adder 42 and is further connected to the second input of APP channel 40.
There is a need for alternate/improved methods for limiting the number of consecutive zeros within a block of information to be stored or transmitted in transmission and storage systems, e.g., in a digital magnetic recording system such as that shown in FIG. 1. Moreover, there is a need for a method or system which will allow (d,k) encoding methods to be applied to turbo coding systems, such as in the system illustrated in FIG. 2.
The present invention is presented to bring about one or more advantages, such as those noted below. One object of the present invention is to provide an alternate, improved method and system for encoding and decoding binary data so as to limit the number of consecutive zeros within a given block of such data, as the data is forwarded to a temporary holding media, such as a transmission media or storage media. A further object of the present invention is to provide a (d,k) coding system which is applicable to newer proposed magnetic recording systems using turbo codes. Another object of the present invention is to provide a coding method and system which will use little overhead in its operation.
The present invention, therefore, is directed to a method or system, or one or more components thereof, for encoding binary input data comprising payload data to facilitate the preservation of the payload data destined for a temporary holding media, such as transmission media or storage media. A scrambler receives and scrambles given binary input data to produce given scrambled data. A de-scrambler receives and unscrambles the given scrambled data to produce given output data. The given scrambled data may be written in the form of media data onto storage media, or it may be transmitted in the form of media data over transmission media. The de-scrambler receives and unscrambles the given scramble data from the media data which is recovered from the storage media or the transmission media.
A criteria checker may be provided for determining whether the given scrambled data satisfies desired criteria. The desired criteria may be a k constraint, which represents the maximum number of consecutive zeros allowed within the given scrambled data. In a particular embodiment, the given scrambled data comprises a block of data of a predetermined size. A scramble modifier changes the given scrambled data until it satisfies the desired criteria. The temporary holding media may comprise a storage media, and may more specifically comprise a magnetic recording disk. In a specific embodiment, the magnetic recording disk comprises a turbo coded magnetic recording disk.
The scrambler, in a particular aspect of the present invention, comprises a pseudo-random scrambler. The pseudo-random scrambler may comprise a set of pseudo-random sequences and a mechanism for XORing a given pseudo-random binary sequence from the set with the given binary input data to produce the given scrambled data. The scramble modifier may comprise a mechanism for causing the scrambler to re-scramble the given binary input data using a different pseudo-random sequence from the set of pseudo-random sequences. The de-scrambler reverses the operation performed by the scrambler to reverse any scrambling of the given binary input data.